#ifndef GCOMPILER_HEADER_GNOTATION_H
#define GCOMPILER_HEADER_GNOTATION_H

//---------------------------------------------------------
//	Notations
//---------------------------------------------------------
namespace GNotation
{
#define DEFINE_NOTATION(name, s) typedef symbol<s> name;

	DEFINE_NOTATION(SYM_A, 'A');
	DEFINE_NOTATION(SYM_B, 'B');
	DEFINE_NOTATION(SYM_C, 'C');
	DEFINE_NOTATION(SYM_D, 'D');
	DEFINE_NOTATION(SYM_E, 'E');
	DEFINE_NOTATION(SYM_F, 'F');
	DEFINE_NOTATION(SYM_G, 'G');
	DEFINE_NOTATION(SYM_H, 'H');
	DEFINE_NOTATION(SYM_I, 'I');
	DEFINE_NOTATION(SYM_J, 'J');
	DEFINE_NOTATION(SYM_K, 'K');
	DEFINE_NOTATION(SYM_L, 'L');
	DEFINE_NOTATION(SYM_M, 'M');
	DEFINE_NOTATION(SYM_N, 'N');
	DEFINE_NOTATION(SYM_O, 'O');
	DEFINE_NOTATION(SYM_P, 'P');
	DEFINE_NOTATION(SYM_Q, 'Q');
	DEFINE_NOTATION(SYM_R, 'R');
	DEFINE_NOTATION(SYM_S, 'S');
	DEFINE_NOTATION(SYM_T, 'T');
	DEFINE_NOTATION(SYM_U, 'U');
	DEFINE_NOTATION(SYM_V, 'V');
	DEFINE_NOTATION(SYM_W, 'W');
	DEFINE_NOTATION(SYM_X, 'X');
	DEFINE_NOTATION(SYM_Y, 'Y');
	DEFINE_NOTATION(SYM_Z, 'Z');
	DEFINE_NOTATION(SYM_a, 'a');
	DEFINE_NOTATION(SYM_b, 'b');
	DEFINE_NOTATION(SYM_c, 'c');
	DEFINE_NOTATION(SYM_d, 'd');
	DEFINE_NOTATION(SYM_e, 'e');
	DEFINE_NOTATION(SYM_f, 'f');
	DEFINE_NOTATION(SYM_g, 'g');
	DEFINE_NOTATION(SYM_h, 'h');
	DEFINE_NOTATION(SYM_i, 'i');
	DEFINE_NOTATION(SYM_j, 'j');
	DEFINE_NOTATION(SYM_k, 'k');
	DEFINE_NOTATION(SYM_l, 'l');
	DEFINE_NOTATION(SYM_m, 'm');
	DEFINE_NOTATION(SYM_n, 'n');
	DEFINE_NOTATION(SYM_o, 'o');
	DEFINE_NOTATION(SYM_p, 'p');
	DEFINE_NOTATION(SYM_q, 'q');
	DEFINE_NOTATION(SYM_r, 'r');
	DEFINE_NOTATION(SYM_s, 's');
	DEFINE_NOTATION(SYM_t, 't');
	DEFINE_NOTATION(SYM_u, 'u');
	DEFINE_NOTATION(SYM_v, 'v');
	DEFINE_NOTATION(SYM_w, 'w');
	DEFINE_NOTATION(SYM_x, 'x');
	DEFINE_NOTATION(SYM_y, 'y');
	DEFINE_NOTATION(SYM_z, 'z');
	DEFINE_NOTATION(SYM_0, '0');
	DEFINE_NOTATION(SYM_1, '1');
	DEFINE_NOTATION(SYM_2, '2');
	DEFINE_NOTATION(SYM_3, '3');
	DEFINE_NOTATION(SYM_4, '4');
	DEFINE_NOTATION(SYM_5, '5');
	DEFINE_NOTATION(SYM_6, '6');
	DEFINE_NOTATION(SYM_7, '7');
	DEFINE_NOTATION(SYM_8, '8');
	DEFINE_NOTATION(SYM_9, '9');

	DEFINE_NOTATION(SYM_PLUS,		'+');
	DEFINE_NOTATION(SYM_MINUS,		'-');
	DEFINE_NOTATION(SYM_MUL,		'*');
	DEFINE_NOTATION(SYM_DIV,		'/');
	DEFINE_NOTATION(SYM_MOD,		'%');
	DEFINE_NOTATION(SYM_COLON,		':');
	DEFINE_NOTATION(SYM_SEMICOLON,	';');
	DEFINE_NOTATION(SYM_DOT,		'.');
	DEFINE_NOTATION(SYM_LBRACKET,	'(');
	DEFINE_NOTATION(SYM_RBRACKET,	')');
	DEFINE_NOTATION(SYM_SLASH,		'\\');
	DEFINE_NOTATION(SYM_COMMA,		'"');
	DEFINE_NOTATION(SYM_SPACE,		' ');
	DEFINE_NOTATION(SYM_TAB,		'\t');
	DEFINE_NOTATION(SYM_CR,			'\r');
	DEFINE_NOTATION(SYM_LF,			'\n');
	DEFINE_NOTATION(SYM_NUL,		'\0');
	

#	undef DEFINE_NOTATION

}


#endif	//ifndef GCOMPILER_HEADER_GNOTATION_H

